---
title: How DevPod Builds Workspaces
sidebar_label: Building workspaces
---

Devpod provides the ability to build workspaces by taking a devcontainer.json and a git repository to compile an OCI compliant image with everything you need to develop
against using local tools.

<figure>
  <img src="/docs/media/c4_build.png" alt="DevPod Architecture" />
  <figcaption>DevPod - Container Diagram</figcaption>
</figure>

It does this by parsing the devcontainer.json, extracting the "features" and appending them as build stages to the base Dockerfile. The container is then built, depending on the driver
this could be docker, buildkit or kaniko and deployed with the configuration defined by your context. Optionally once the container is built, it can be pushed to a registry to cache for
other developers or in case you rebuild your workspace later. See #tutorials/reduce-build-times.

